The invention relates to arrangement of data synchronization, in particular to detection of data unit duplicates, in a communications system comprising several synchronization servers. Data synchronization is a function in which correspondence is formed between two data collections in such a way that the data units of the data collections substantially correspond to each other after the synchronization.
Data of portable terminals, such as computers, PDA (Personal Digital Assistant) devices, mobile stations or pagers can be synchronized with databases of network applications, desktop applications or other databases of a communications system. Typically, it is specifically data of calendar and e-mail applications that is synchronized. Synchronization has previously been based on the use of different manufacturer-specific protocols that are not compatible with each other. This restricts the use of different terminals and data types and is frequently difficult for the user. In mobile communication, in particular, it is important to get data acquired and updated irrespective of the terminal or application used. The SyncML (Synchronization Markup Language) has been developed based on the XML language (Extensible Markup Language) for more practical synchronization. The SyncML synchronization protocol using messages in SyncML format allows data of any application to be synchronized between any networked terminals.
FIG. 1 illustrates a synchronization system in which a mobile station MS functions as the client device and network servers S function as the synchronization servers. The client device MS transfers the changes having taken place in the data set under synchronization after the preceding synchronization round to the server S, which synchronizes the data, i.e. analyzes the changes made in the data of the client device MS and the database under synchronization, and makes uniform the data (makes the required modifications, replacements and deletions). After this, the server S returns the changes to the client device (MS), which changes the data set in accordance with the changes. Conventionally, in client-server synchronization the client device and the server have identifiers of their own for the data unit. As described for example in the SyncML specification ‘SyncML Sync Protocol, version 1.0.1’, June 2001, Chapter 2.3 (pages 12-13), identifiers used in the server are called global unique identifiers GUID that are always as unambiguous as possible, in other words they cannot be mixed up with each other. Identifiers of a client device are called local unique identifiers LUID. LUID identifiers are shorter in order to save memory, and the synchronization server maintains a mapping table between the GUID and LUID identifiers. The client device can synchronize data with several servers S, and also the servers S can synchronize data with each other. One simple example of this is that a data unit A is added to a desktop and allocated the identifier GUID1. The desktop synchronizes with mobile stations, whereby it is further allocated the identifier LUID1. When the desktop and the e-mail server have synchronized, the data unit A is recorded with the identifier GUID1 also in the e-mail server. When the mobile server synchronizes with the e-mail server, the e-mail server does not recognize the identifier LUID1. The e-mail server records the data unit and allocates it a new identifier GUID2. After this, the data unit A has been recorded in the e-mail server (i.e. its database) twice. This is called the loop problem of synchronization, which causes redundant data transmission and consumption of memory capacity when unnecessary duplicates are recorded.